home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-12-09 | 51.3 KB | 1,046 lines |
- *******************************************************************************
- ********************** FlaySID (Falcon Plays SID) ***********************
- *******************************************************************************
- * A C64 soundchip emulator for Atari Falcon 030 computers. *
- * Version 3.01. Release date: November 29th, 1998. *
- *******************************************************************************
- * (c) 1995-1998 by David Carrère and Mikhaël Myara. *
- *******************************************************************************
-
- { (Berlin, Germany - Wednesday, 9. Dec 1998)
- A Little Note on the Beginning:
-
- Hi SID & F030 Fans, this is Jo' speaking.
-
- I've took the liberty to ZIP FlaySID3.01 which is still be to considered as a kind of Beta
- Version - as David hadn't had much time the recent months doing his civil-service.
-
- Ok, I've had a short look on V3.0 and snail-mailed David 1-2 bugs I've discovered.
- Pitily we do expect some more. But to show the audience some improvements and
- going ons "we've" decided to put this version on FTP servers.
-
- At the time being and to my actual knowledge David is NO longer reachable by email.
- instead please feel free to either send David a personal snail-mail to:
-
- David CARRERE,
- Mas du Cres,
- F - 30140 BOISSET ET GAUJAC,
- FRANCE
-
- or: I try to keep in contact with him so you can also send easier emails to:
-
- juergen@tcpip-gmbh.de
-
- maybe I'll take also some time to put some more infos on:
-
- http://www.artpages.de/joogn
-
- Furthermore we'd like to finish a HVSC-Tool making the HVSC found on:
-
- http://users.dhp.com/~shark/c64music/hv_sids/
-
- also maintainable on Atari Systems. So HV-Tools certainly will be available at the
- beginning of 1999 containing a ZIP-to-8.3 filenames conversion etc ...
-
- Anyways, now have fun with your "new improved" FlaySID !
- }
-
- -------------------------------------------------------------------------------
- SUMMARY / SOMMAIRE
- -------------------------------------------------------------------------------
-
- Please, look at the end of the english section, the chapter called "What's new
- in this version ?" / Une version française de cette documentation n'est absolument
- pas présente dans la seconde partie de ce fichier, car Mikhaël et moi même
- partons à l'armée, donc c'était ça ou pas de FlaySID avant plusieurs mois ! Désolés.
- C'est l'occasion de perfectionner votre anglais !
-
-
-
- A- ENGLISH VERSION / VERSION ANGLAISE
-
- I- What is FlaySID ?
- II- Some information about system compatibility
- III- How to use FlaySID ?
- IV- Known bugs and technical information
- V- Possible questions you may have...
- VI- How to contact authors ?
- VII- Thanks
- VIII-What's new in this version ?
- IX -For future versions...
-
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- ENGLISH SECTION / VERSION ANGLAISE
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
-
-
- I - What is FlaySID ?
- ---------------------
-
- FlaySID is a musicplayer, but not a simple musicplayer : it is able
- to play musics from the famous Commodore 64, a little but powerful computer
- developped in the beggining of the 1980's.
- To play such music-files, FlaySID has a C64 emulator that executes original
- C64 music routines (ripped from games, or demos) in real time. The DSP is
- widely used to emulate the SID (C64's Soundchip processor).
- More than 6000 SID files are available ! If you know somebody who uses PlaySID
- on Commodore Amiga computers, or SIDPlay on PC Computers, you can replay their
- datafiles : FlaySID is able to load them.
-
-
- II - Some informations about system compatibility
- -------------------------------------------------
-
- FlaySID is a GEM application, Magic, NVDI and MinT compatible (Warning: To
- be MinT compatible, you must remove the memory protection, changing the
- filename MINT.PRG into MINTNP.PRG).
- It can be launched as a GEM application (.PRG) or as a desk accessory (.ACC).
- FlaySID shares system-ressources with others applications but slows down the
- computer, because of the C64 emulation.
- FlaySID works on Falcon 030 and should work on compatible computers (with a
- DSP56001).
- FlaySID works fully with high-speed CPU card (Contact us if you have problems)
- even if you change CPU speed when playing.
- FlaySID takes about 450Ko of ST RAM when loaded.
- FlaySID works with any graphic resolution, but it looks better with 16
- colors standard GEM palette, and 80 col. graphic modes (>640 pixels wide).
- You should not use FlaySID in Truecolor modes, because they are too slow...
-
-
- III - How to use FlaySID ?
- --------------------------
-
-
- -----------------
- |To load FlaySID|
- -----------------
-
- You must have the executable file (FLAYSID.ACC OR FLAYSID.PRG) and the
- ressource file (FLAYGEM.RSC) placed in the same directory. To use FlaySID
- as a desk accessory, just rename FLAYSID.PRG as FLAYSID.ACC and copy
- it (with FLAYGEM.RSC) at the root of your bootdisk (C:\ most of the time).
-
-
- -----------------
- |The main window|
- -----------------
-
- This is the first window you have when FlaySID is loaded (or when you call
- FlaySID using the Desk Accessory menu).
-
- FlaySID works like many CD players, so you have buttons to :
- - Load a file (EJECT button)
- - Stop playing a music (STOP button)
- - Start playing a music (PLAY button > )
- - Pause the music when playing (PAUSE button || )
- - Forward the music faster (FAST FORWARD button >> )
- - Save music datas (SAVE button (*)) [Not available in v 3.0]
- - Change for next (>>|) or previous (|<<) music
-
- Click on the FlaySID logo to have informations about authors and program.
- Click on the "Opt." Button to change some play-parameters
- Click on the "Osc." button to display SID's waveforms and registers.
- Click on the "Log." button to display a text window with informations and
- error messages about FlaySID.
- Click on the ">>|" or "<<|" icon to change the number of the tune you want
- to play (a SID file often includes several tunes).
- A status line is in the lower border of the main window, it gives you
- information about the selected operation or about internal errors.
- The "Name", "Author" and "Copyright" fields give information about the
- Author, the name of the music, and the copyright (if available in the
- music file, else you will have something like " <?> ").
-
- You can close the window by clicking on the upper-left button (cross).
- If you use FlaySID as a desk accessory, the window disapear but FlaySID stays
- in memory, and if necessary, continue to play a tune. If you use FlaySID as
- a normal executable program (.PRG file), the music will be stopped and you
- will quit it.
-
- You can also iconify FlaySID using the upper-right button of the window
- ("fuller" button). You have then a smaller interface with only the basic
- functions. To display again the full window(s), click on the same button.
- In 40 col. graphics modes (<=320 pixels wide) FlaySID will automatically
- set the main window to its smallest size, and you can not change this
- (because there is not enough room space to display the entire interface).
-
- These two buttons exist on all windows (The upper-left button quits FlaySID
- only with the main window, otherwise it simply close the window). Closing the
- main window will automatically close all the others windows of FlaySID that
- you may have opened.
-
-
- -------------------
- |The Option window|
- -------------------
-
- This window is very important and contains a lot of parameters for the SID
- Player, and for the general use of FlaySID.
- In the upper part of the window you have buttons called "Emulation",
- "Osc.", and "Misc". Clicking on a button will display the options
- corresponding, in the middle part of the window.
-
- In the lower part of the window there are three buttons:
- "Save" to save the complete actual configuration,
- "Cancel" to restore the old configuration of the current options,
- "Set" to use the new options choosen.
-
- In this version, the Save and Cancel options are not working. But FlaySID is
- able to manage configuration files. That is to say: if a FLAYSID.INF file is
- available in the same directory than FlaySID, it will be recognized and the
- player will be configured as you want. A ".INF" file is available with this version
- but you can create it easily (see elsewhere in this file).
- In fact, most of the time, you do not need to click on the SET button to use most
- of the options: their effect is instantaneous. But for emulation modes, or Time-space
- window configuration, you must press the "SET" button. It is not possible to
- switch from one to another emulator in realtime, because each of them requires
- different initialisations and uses different parts of code, so the new mode will
- be used the next time you play a music (pressing start button or changing music).
-
-
- The Emulation sub-window:
- -------------------------
-
- This allows you to change some emulation options. There are two parts:
-
- 6502 emulator options:
-
- *"C64 Type" Allows you to change the frequency of the emulated C64. PAL for
- european C64 (0.9 MHz), NTSC for US C64 (1 MHz).
- The PAL/NTSC option must be used carefully: Use always the PAL option to
- play correctly most of the tunes (FlaySID then simulate an european C64).
- But if you know that a music was specially done for american C64, then (in
- this case ONLY) change for NTSC.
-
- *"Emulation modes" Allows you to change the emulator used. "PlaySID" is
- the default mode. This is an optimized 6502 emulator. (For programmers:
- memory overflow is not managed if the 6502's PC go below $0000 or beyond $FFFF,
- but the playroutine will be stopped - all PlaySID ripped musics should
- perfectly work). "SIDPlay PC" uses an enhanced 6502 emulation, wich is fully
- compatible with the famous PC SID Player (Bank switching emulation), but
- slower than the default mode. Use always the PlaySID mode first, and only
- if it does not works, try this mode. "Total C64 mode" let you... well, does
- it really worth the price that we explain the aim of this option ?! :)
- Of course, a 40Mhz Falcon is highly recommended...
- In FlaySID v3.0 the "SIDPlay PC" and "TOTAL C64 mode" are NOT yet working. We
- hope to make them available (at least, SIDPLAY mode) for next version.
-
- *"Save mode": This option is linked with the "save" icon of the main window
- of FlaySID. This option let you save SID music or SID datas into files,
- to analyse them !
- In FlaySID v.3.0. The save mode is not active, be sure it will be ready for
- v3.1.
-
- *"Consider emulator crashed if execution time is greater than xx seconds".
- A playroutine usually lasts 0.02 seconds (50Hz interrupt). But, if something
- goes wrong, the 6502 emulator will never ends. And as FlaySID is based on an
- interrupt, it will never end, and so... your Falcon will be locked too !
- Exactly like a real C64... What a wonderful and accurate emulation ! :-)
- But FlaySID is able to see that there is a problem and stops the interrupt.
- The problem for some tunes (ex: those ripped by "Helmond Cracking Service")
- is that the first routine FlaySID calls ("Init routine") lasts for some
- seconds (What did the program do ? Maybe unpacking...). So, you can parameters
- the maximum time a 6502 routine can last. The default time is 5 seconds.
- In FlaySID 3.0 you can change this parameter using the config file for FlaySID
- (FLAYSID.INF).
-
-
- DSP SID emulator options:
-
-
- *"Replay frequency": You can choose among several replay frequencies. The
- default frequency is 25Khz and plays 95% of tunes at correct speed on a
- standard 16Mhz Falcon. 33Khz frequency is for lucky owners of 40Mhz DSP.
- 20Khz frequency is really awful, but it is better than nothing if the
- DSP has not enough time to play a tune...
-
- *"Emulation of test bit": The test bit is often used to reset or stop
- immediately waveforms (well, to be accurate, the test bit was also
- used for "non direct musical reasons", because setting the test bit would
- increase the signal/noise ratio of the SID output). A lot of tunes use it,
- especially tunes from 1994-1998.
- The test bit emulation of FlaySID is not 100% correct, and this could lead
- to noisy clicks sometimes or even to excessive white noise reset, removing
- high frequencies (This was often the case in old versions of FlaySID !).
- This version 3.0 of FlaySID seems to have a correct emulation of test bit:
- The white noise is reseted only if test bit is set to one for more than $5000
- C64 cycles. Others waveforms are immediately reseted.
- You should use always the test bit emulation, but you can choose to use it or no,
- if the emulation does not seems to be accurate.
-
- *"Emulation of filters": allows you to choose to emulate SID filters or
- no. You can choose wich filter emulate.
- In FlaySID v3.0, only the Low-Pass filter is available. Well, this is
- not so bad, because it is the most often used !
-
-
- The Osc. sub window:
- --------------------
-
- This window is only for the time-space viewer.
-
- *"Display SID waveforms": Allows you to see the waveforms of the SID on each
- voices, plus the sample voice used sometimes (this sample voices was created
- changing quickly the general volume level, but ripped musics play them in a
- different way, so that it is possible do display the waveform).
-
- *"Display SID Registers": Allows you to see the main registers of the SID
- (so you can understand why some tunes are so wonderful ?!). On the
- time-space viewer, below waveforms, you have the names of internal registers
- followed with a button. A coloured button means that the register is selected.
-
- The time-space viewer is refreshed as soon as the system has time to do it.
- With tunes wich use a lot of CPU time, the refresh rate may become absolutely
- unbearable ! If you have NVDI, this window will be more interesting because
- more acurate. In FlaySID v.3.0. display routines have been greatly improved.
- NB: To have a maximal speed, close the Log window (it slow down the time-space
- viewer because of its own management).
-
- *"Waveforms redraw routines": You can choose among two drawing routines:
- -Pure GEM: Only standard GEM routines are used. The main advantage is that
- this will probably work on any thinkable configuration, with any graphic
- resolution. The main default is that it is so slow that you will forget it
- for the next button:
- -Gem Compatible: Assembler routines draw waveforms, and a GEM routine copy
- them onto the screen. It is fast, and system friendly. It should work with most
- of the graphic configurations.
-
- nb: This option is valid only for waveforms, not for SID registers. The display
- of the internal registers is always refreshed using standard GEM routines.
-
- *"Linked points": You can link or not the points of the waveform display windows,
- so that square waveforms will be really square, and will not be only two
- parallel lines ! nb: In Pure GEM mode, the points are never linked (...and there
- is even a redraw bug ! f**k ! No time to remove it in this v3.0 !).
-
- *"Colors for oscillators": Just for the fun !
-
-
- The "Sound" sub-window:
- -----------------------
-
- *"SID Emulation processor"
- Here, you can choose to use the Yamaha (soundchip processor of the Atari ST and
- Falcon) instead of the DSP to play the music. IN THIS CASE, IT IS NOT REAL SID
- EMULATION !! This option is here for the fun. The only way to do real SID emulation
- is the use of the DSP Output. You can also choose "Hardware SID". This is for a
- SID harware card that you plug into the cartridge extension port of your Falcon.
- The way to make it will be given in next versions of FlaySID, but we are currently
- debugging this card, made by Jo'ogn Opperman. You can contact him for further
- informations (his email: juergen@tcpip-gmbh.de)
- This card maps the SID registers as follow:
- Atari a1-a7 = SID d1-d7
- Atari a8-a12 = SID a0-a4
- Atari a15 = starts a Monoflop that draws SIDs -RES for
- more than 10 clockcycles a 1us to low (Reset SID).
-
- *"ASCII conversion" let you convert the ASCII text of the NAME, AUTHOR, and
- COPYRIGHT of a SID file. It is interesting for special ASCII characters
- (>128). You can convert AMIGA/Windows95/98 -> Atari, or PC MS-DOS->Atari.
-
- *"Display SID infos": this option will display in the Log window some internal
- parameters of the SID file (loading adress, ...). These datas could be wrong
- if the player does not play the music when asking for them. Some or them will
- be displayed only when FlaySID is playing the music. Why ? Because some
- parameters could be known only when the C64 routines have been called !
- "Give now" gives you these datas as you want (the interest is to ask for them
- when FlaySID is playing).
-
- *"Unlock sound-system"
- If an application wich use the sound system has a problem (the kind of EXPLOSIVE
- one !) it can not end properly, and this could make the sound-system
- unavailable for other applications. Clicking on this option will force the
- sound system, even if it seems not to be available. Warning: never use it "just
- to see" the result ! If another application is currently using the sound system
- in a normal way, you will also have a kind of explosive problem !
-
-
-
- -----------------------
- |The Oscillator window|
- -----------------------
-
- Opening this window, you will have the digital output of the SID (Three
- synthetized voices + the optional digitized voice), and the content of
- some SID registers in something we can name "realtime" for an human being
- (...but certainly not for a computer !).
- You can also display SID registers and/or SID waveforms. To change these
- parameters, look at the "Osc." button onto the options window.
- You can cut off each voice separately, by clicking on the buttons "voice 1",
- "Voice 2", "Voice 3", and "Voice 4".
-
-
-
- IV - Known bugs and technical informations:
- -------------------------------------------
-
- We need your opinion to make FlaySID sound (... or look) better. So,
- please, tell us all the bugs you could have noticed. This is very important
- we can not test the program on every possible configuration !
- Some users do that, and so help us a lot.
-
- For SID Emulation/C64 emulation bugs, please, write to David,
- and give the name of the musicfile and describe precisely the bug or
- the problem. If you are a C64 music coder, and if you think your
- playroutine doesn't works correctly, please let me know !
-
- For GEM Interface bugs, write to Mikhael, give your hardware
- configuration, the operating system you use (Magic, GEM, ..), the name of
- the programs you have in your AUTO folder (same for desk accessories),
- and of course, tell your problem !
-
- YOU ARE ALSO ALLOWED TO WRITE US JUST TO TELL THAT IT WORKS FINE ! :-)
-
-
- *6502 emulator v 1.2:
-
- - Full cycle-based emulation
- - PlaySID emulation mode
- - Emulation of all legal instructions
- - Emulation of some undocumented instructions
- - Emulation of PlaySID's CIA-IRQ/TIMER-A
- - Memory managment 100% PlaySID compatible
- - Managment of PlaySID extended registers (for Sample & Galway fixed routines).
- - In this version, if the emulator find an illegal (undocumented) instruction,
- wich is not yet emulated, the playroutine is imediately aborted.
-
- *DSP SID emulator v 2.0:
-
- - REALTIME synthesis at 33, 25 or 20Khz, 16 bits mono, calculated on 24 bits.
- - Full cycle based emulation
- - SID emulation accuracy: 30, 40 or 50 6502 cycles (depending on replay
- frequency). SID registers are read each 30 (or 40 or 50) cycles. (A
- modification of SID registers in an interval lower than 30 (or 40 or 50)
- cycles will be take in count but not hearable).
- - Emulation of the 4 waveforms and their parameters, with the same
- resolution than the SID (However, waveforms are slightly different compared
- to the real SID, because FlaySID does not emulate its analogical output).
- Correct emulation of special waveforms (mixed waveforms), but not realtime
- synthesis (cycle based, but waveforms are taken from original C64's samples).
- - Emulation of white noise waveform. It should be close to the
- original one, but does not seems to be the same as expected.
- - Emulation of ADSR registers and volume enveloppes.
- - Emulation of Synchronization and Ring-modulation (FlaySID use the same
- algorithms than those in hardware into the SID)
- - Good emulation of "Test bit", but not yet perfect !
- - Emulation of Low Pass, High Pass and Band Pass filters, at 6dB/Octave, with
- resonancy. Resonancy emulation is rough but... it sounds not so bad !
- - Emulation of read-only registers ($d41b, $d41c) but not accurate.
- - Emulation of Samples/Galway-noise (PlaySID fixed routines)
- accuracy: 30, 40 or 50 C64 cycles, depending on replay frequency.
-
-
- *YM-2149 Yamaha soundchip processor SID emulator V1.0β:
-
- -Realtime conversion of SID datas into YM datas.
- -Only one waveform instead of the three of the SID, plus White noise
- -No Ring Modulation
- -No Hard Sync but an ugly pseudo-sync effect instead.
- -Full emulation of ADSR (using the 68030 to control the YM in realtime)
- -Emulation of read only registers
- -Emulation of Sample/Galway Noise (PlaySID fixed routines) using the 68030.
- -Full emulation of "Windows98's CNN bugs" ! :)
-
- *GEM Interface v 1.0 :
-
- - Full XFormDo (Window-based Formulars)
- - Contextual Mouse Cursors
- - One UserDefined Object has been Defined (200)
- - Accessory Messages supported
- - Objects Redraw in background windows available.
- - Faster and optimized routines
-
- Comments and known bugs:
- -----------------------
- *To play at 33Khz you MUST use a hi-speed card. Maybe later this option
- will work on a standard falcon...[In fact, sometimes the 33Khz
- option works on a standard Falcon, but you have to try it...].
- *Some tunes use simultaneously 2 or 3 filters: a 32Mhz DSP seems to have
- problems playing musics at correct speed ! Next version of FlaySID will
- let you use a "fast mode" with less parameters.
- *There are a LOT of new features on this version of FlaySID. It seems
- to work fine, but we can not test the program on every thinkable
- configuration. If a crash occurs on your Falcon using FlaySID, check first
- if there is not a problem of compatibility with another resident program.
- If it always crash the OS, then write us ! Warning: sometimes, when FlaySID's
- internal 6502 emulator crash, it could take some seconds for the "security
- routines" to stop it, so your system seems to be halted for some seconds, but
- in fact, it is not crashed !
- *FastForward routines speed up the 6502 and SID frequency. But, as the
- emulator is splitted between the 68030 and the DSP, if one of the two processors
- have not enough time to complete the emulation, of the tempo or the frequency,
- only one will be higher creating strange effects ! ...Buy a 40Mhz card !
- *Sometimes you could have some noisy bugs in the synthetised sound (a kind of
- "click"). This could be normal, and a C64 would also play these clicks (this
- is the case for "Danger Freak Intro" by C.Huelsbëck), but it could be that
- FlaySID imitates the numeric "output" instead of the analogical output of
- the SID. We have to lead further analyses on the SID's analogical output
- before emulating it.
- *Under Magic, no 3D Look Support in Monochrom Modes.
- *Some display bugs in the time space viewer using some graphic resolutions
- *Sample routines for the Yamaha player are not stable... they could lock your
- computer with some tunes... avoid to use YM when you do important work
- with your Falcon.
- *Even if the 6502 emulator has been optimized, FlaySID is not yet able to play
- all musics at their real tempo (~ 5% of all available musics) on a basic
- Falcon 030 running at 16Mhz. This is because the 68030 has not enough time to
- do the emulation ...or because the emulator is not perfect :). In this case,
- FlaySID slow down the tempo (/2) to let the 68030 complete the emulation.
- If this problem occurs with samples, they will be distorted (DSP Player only).
- Happy owners of Hi-Speed CPU card will never have this problem !
- If you have only a standard Falcon with 16Mhz 68030 (...like us !) try to
- decrease the number of colours of your GEM desktop, so that the graphic
- processor ..VIC... hmmm no, VIDEL ;) of the Falcon will steal less memory
- read cycles to the 68030 (the best solution is to use a screen saver wich
- completely stops the VIDEL, such as TURBO VEILLE). Also, avoid moving the
- mouse, because mouse system routines take HUGE time !
-
-
- V- Possible questions you may have...
- ---------------------------------------
-
- Q: Why does FlaySID takes so much memory in the new version ? (450 Kbytes)
-
- A [David]: There are obvious answers: the new version includes C64 ROM (20Ko)
- (for future MMU emulation) and there is a lot of new code (for the emulator
- and for the interface management).
-
-
- Q: Why the DSP isn't able to do SID emulation at 33Khz on my standard 16Mhz
- Falcon ?! All soundtrackers play at 50Khz !
-
- A [David]: I am a 68030 coder. The DSP Player is the first and the only one DSP
- program I ever did. I learn a lot of things about DSP programming each new week,
- and it takes time to re-do all the old routines. Some of them are really awful...
- I know it, but I can't make about 2500 lines of DSP code in a single week (My
- brain is older than this good old 6502 processor !). I must also keep in mind
- to improve the 68030 source code (6502 emulators, Yamaha player, and more).
- I think the synthesis program will fully work at 33Khz on standard Falcon one
- day.
- I could do a faster program using general synthesis algorithms. But I don't want
- it. It is not interesting for me: I don't want "a" SID synthesis, but THE SID
- synthesis (...if possible !). This entails a lot of precalculated tables (illegal
- waveforms, ADSR "sound enveloppes", filters parameters), and a lot of special
- tests (for test bit, for special ADSR programming, for SID registers refresh
- delays). The SID synthetizer also use some original SID algorithms for waveform
- generation. And the problem is that these features use a lot of memory moves
- and tests, but not a lot of computing instructions...and the DSP is really not
- at ease with this kind of programming... and I am not at ease with the DSP ! :)
- To conclude: I choosed MAXIMAL SID FIDELITY instead of MAXIMAL REPLAY QUALITY.
-
-
- Q: Why is your YM so poor ?! There are plenty of bugs !
-
- A [David]: When I did FlaySID, and when I didn't know how to code the DSP, I
- need to test the emulator to see if it worked correctly. I decided to use the
- Yamaha to make a fake SID emulation. When the DSP synthesis program was finished,
- I decided to let the Yamaha player, because... it was really funny ! So the YM
- player is very rough, because it was for my own tests...
- The interrupt reproducing the ADSR runs at 200Hz only, even if it is enough most
- of the time (the fastest attack rate would need a 8000Hz interrupt to be correctly
- reproduced but it takes too much CPU time). The way I do ADSR is not really clever,
- I think there is another way to do them. There is no hard sync emulation, but
- the hard sync is replaced by... something completely different but wich
- could give... well... an idea of what the sound could be... (even if most of
- the time it sounds awful :-) ). Concerning the ADSR, I found why it sounds so
- poor, I need time to re-do all the ADSR routines ! Argh ! %-)
- Comparing the YM player and the DSP player is useful to check if a bug come from
- the 68030 emulator (The bug could be heard in the two modes), or from the DSP
- (the bug is here only using DSP, but not with the YM).
- If users ask for it, I will improve the YM player...
-
- Q: Why Flay uses a cycle-based emulation of the C64 ? Does it really worth the price
- and doesn't it slow down the system ?
-
- A [David]: Flay uses a cycle based emulation because it contributes to improve
- the fidelity of the SID emulation. The SID create sounds, but a clever
- "musician-programmer" can create highly complex sounds changing SID registers
- at small and/or regular space of time. Furthermore, if FlaySID adresses the
- SID using the same timing than a real C64, I think you will agree that the
- result will be probably closer to the reality - (even if you can't often hear
- the difference...)
- So, I think that it worth the price all the more that it doesn't takes extra
- CPU time for emulation (except for samples). Having or not the cycle based
- emulation will change nearly nothing for the 68030 processor, because it is the
- DSP wich do all the required synchronizations. Concerning samples, this is
- true that the method used take (not so) much time than an ordinary 68030 interrupt
- based routine but I had reasons to choose it:
-
- *I never succeed in playing a sample using a 68030 interrupt and DMA without
- having sample distorsion when you move the mouse.
- *Using a 68030 interrupt decrease the quality of samples, because you lost
- cycle-based emulation for them, and furthermore, all the MFP rates (MFP = Falcon's
- interrupt controller) does not cover exactly all the sample rates of the C64.
- *With the actual method, FlaySID play the samples exactly like the original C64
- and is -theorically- also able to replay ORIGINAL C64 sample routines. I wrote
- "theorically" because in fact, as FlaySID does not emulate the C64's CIAs
- (=C64's interrupt controllers) it cannot execute original samples routine yet,
- but when CIAs emulation will be complete, be sure that it will work !
-
-
- Q:... And why did samples slow down a bit FlaySID ?
-
- A: Curious user ! to sum up, FlaySID convert PlaySID sample datas into a
- a new latice: it re-create the data stream of the original NMI sample
- interrupt...
-
-
- Q: When I use the fast forward mode, I suppose this is a trick, and that
- the synthetised sound loose accuracy ?
-
- A: No. When you press the fast forward button, it is exactly as if you have a
- C64 running at 2Mhz, instead of 1 Mhz. The entire emulator (6510 & SID)
- runs twice as fast. There are no losses.
-
-
- Q: Do you know the HV-SIDs collection ? I cannot use the v2.0 because it is
- in long names fileformat !
-
- A: Yes, of course, we know HV-SIDs. This is the most comprehensive SID tune
- collection ever done. Until the v2.0, ZIP files were in MS-DOS fileformat.
- But, for the v2.0, authors choosen long name fileformat (Unix, Amiga, Mac
- OS), we can not blame them for this choice, it is a normal evolution.
- So, there is a problem for TOS Falcon users.
- If you use MagX! 5.0 you will not have this problem, because MagX! use
- the Windows95's FATname system, and FlaySID "loves" MagX! !
- For TOS users we would like to let FlaySID use directly the .ZIP files, so
- they will not have to unpack them on their harddisk, and they will have
- long filename, like everybody ! Jo'ogn Oppermann also make programs to run
- HV-SID's update files on Falcon.
- Contact us if you are interested in.
-
- Q: Could Linux users have FlaySID one day ?
-
- A[David]: Yes. A user wrote me and asked me if I could give him FlaySID ASM
- sources to make a Linux version. The answer is: OK, no problem. I just would
- like that this user re-contact me via snail-mail, because I cannot send email
- to tell him that it was a very good idea ! :-(
-
- Q: What ?! You talked about a Total C64 Mode ?
-
- A: Yes.
-
- Q: Does it means that I will see on the screen of my Falcon "C64 Basic...
- Ready" with a typical blue background ?
-
- A: Wait and see... It depends on the number of FlaySID users, and on the will
- David have to make a C64 emulator for Falcon... If others coders want to take
- part to this project, it will speed-up things !
-
-
- VI- The authors:
- ----------------
-
- FlaySID is POSTCARDWARE ! You can copy it freely, but you MUST NOT
- change the contents of the program/data files/original archive.
- ...We received 2 postcards until now, and we think we have more than two
- users (one in Germany, the other in Poland) in the world. Show us you like
- our work, send us a postcard ! Or a photograph of your dog using FlaySID,
- or... whatever you want !
-
- Ideas, or questions are welcome !!
-
- *To discuss about 6502 emulation, SID emulation, DSP and 68030 programming,
- system compatibility or about the C64, please contact David:
-
- email: one day probably !
- Ordinary mail: David CARRERE,
- Mas du Cres,
- 30140 BOISSET ET GAUJAC,
- FRANCE.
-
- Minitel (For french people only): I threw my Minitel into the trash !
- IRC: it is impossible for me to go on IRC. Sorry.
-
- *To discuss about GEM interface programming, C programming and about numeric
- filters, please contact Mikhaël:
-
- email: no email ! Maybe one day...
-
- Ordinary mail: Mikhael MYARA,
- 13, Impasse du Caroux
- 34500 BEZIERS,
- FRANCE.
-
- As you can see, snail mail is the only way to contact us from September 1998.
- Furthermore, we have 10 monthes of free "holidays", offered by the French Army !
- So, we will be slower than before to answer (My God ! you will have to wait at
- least 152 years !).
-
- VII- Thanks
- -----------
-
- 1- From David
- -------------
-
- On the beginnig of 1995, I knew nothing about the C64. I was even not able
- to tell you the colour of the BASIC screen ! In three years, I had to learn
- (almost !) everything about this computer, same for the DSP 56001 included
- into the Falcon. I had also to improve my coding style wich was a bit rough
- ...haem...just a bit ;-)
-
- So, I would like to thank some people for their precious help:
-
- *David Virebayre, to make me discover C64's fabulous world, especially SID
- music, for supporting me in this project, to give me very good documentation
- about the C64, to make me share its wonderful ideas for optimizing and
- improving FlaySID. For all time we spent (and we will spend) in front of his
- C64 and Amiga, discussing about everything wich make computers exciting.
- I really hope that there will be in the future people wich will make computers
- as exciting as the C64 is, but I fear that something has changed for ever...
-
- *Mikhaël Myara to offer his services and join my project, to allow FlaySID to
- have a so beautiful and user friendly interface, to fill up all my lacks in
- mathematics and physics, for its wonderful formulas for filtering, for its
- good ideas, and for all our discussion about computers, around a table of
- the "Restaurant Universitaire de Montpellier" (Montpellier's students
- dining-hall). 'hope we will have again a lot of computer science projects to
- make together !
-
- *PlaySID's authors for their precious help, particularly with PlaySID's sources
- wich helped me a lot to improve FlaySID, and to make it 100% PlaySID compatible.
- Also, I would like to thank them to be the firsts wich created the concept of
- the "Playmulator", I am not sure that they expected such a huge success for this
- concept on all computers ! I really regret that PlaySID Amiga has been halted, and
- I will be really happy to take part to a new version.
-
- *Juko VALTA to gave me a lot of technical informations about the SID, and other
- C64 processors.
-
- *"Alfatech" on IRC for his explanations about the basic functionment of
- ring-modulation !
-
- *Michael Schwendt (SIDPlay's author on PC) for Decay and Release waveforms datas,
- for PlaySID 3.0 fileformat (better than the one I "computed" before !), and
- for .mus fileformat.
-
- *Andreas VARGA and Uwe SMITH.
-
- *Thanks to Atari for adding a DSP into the Falcon.
-
- *Thanks to Christian Huaux for its book about the DSP 56001. [Bon CH, tu deviens
- quoi, on te voit plus ?!]
-
- *Thanks to the authors of several text files about SID and C64, available
- on the net, for their long and hard work (especially NewsGroup comp.sys.cbm).
-
- *Thanks to (scarce) FlaySID users wich let me know bugs, and wich support
- FlaySID. Thank you ! And keep your Falcon !
-
- *And, last but not least, thank to myself (...not Myselƒ !) for having the
- will to tell to David Virebayre, when he showed me PlaySID Amiga: "Wow, I
- really like this program, I convert it to the Falcon !", and he turned about
- me with a resolute look, puting two of his fingers into his nose (implying
- "Fingers in the nose !").
-
- (Mikhaël has also a lot of thanks to tell, but he will do it in a future
- version. Won't you, Mikhaël ?! ... M..Mikhaël ? Are you here ?!)
-
-
- VIII -What's new in this version ?
- ---------------------------------
-
- **Version 3.1, November 1998.
- Wooow ! So fast !
-
- -Bug removed from DSP filter emulation routines. The conversion of SID
- frequency into hertz frequency (what we could name something like "filter
- response curve") is now MUCH MORE close to the original. The Bandpass
- and hipass filters are now correct. The only problem is that the volume level
- of the filtered sound is sometimes a bit weak (maybe a little problem with
- resonancy emulation).
-
- -Bug removed from the Option/Emulation window ("Emulation of all filters" option)
-
- -Bug removed to the volume level slider (Option/Misc window)
-
- -Volume level of mixed waveform "Sawtooth+Triangle" was too weak. It has
- been increased.
-
-
- **Version 3.0, October 1998.
- What ?...Late ? You said we are LATE ?! How do you dare to tell...
- the truth ! :-)
-
- Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow !
- #############################################################################
- -Low Pass, High Pass, and Band Pass Filters added. This is a first try, the
- filters run at 6dB/Octave (unlike the real SID whom LP and HP filters are 12
- db/Octave). The conversion of SID frequency (Reg. $D415/$D416) into Hertz
- frequency is rough. The resonancy should not sound so bad because FlaySID
- does not use a real accurate mathematical resonancy... What %-) ?! It uses
- another algorithm wich should be closer to the real SID resonancy and to the
- functionment of analogic components of this processor.
-
- Now take all yours favourite tunes, and ENJOY THEM !
- Some tunes with cool filters effects, from HV SIDs collection:
- Martin Galway/; Jonhatan Dunn/; Chris_Huelsbëck/; Rob_Hubbard/; Tjelta/;
- Maniacs_of_noise/; Various/TBB/; Various/PVCF/; Various/AMJ/;
- Various/Agemixer/; Various/JEFF; ...
- And of course, all musics from your favourites games: Eliminator, Sanxion,
- Robocop 1, Lastninja, Yie Ar A Kung Fu 2, ...
-
- Please, tell us how accurate are these filters, according to your C64
- musical memory... Be careful with the Band Pass and High pass filters,
- they have to be improved !
-
- The filtered waveforms are NOT displayed in the time-space viewer, because
- waveforms are drawed before filtering. Furthermore, the SID filters the
- sum of voices, so, the result is not displayable for each voices separately.
- And as FlaySID's DSP routines try to work exactly like a real SID ...
- Registered users of "Megaplayer v1.13", you can see the synthesis's final
- result, changing the source for oscilloscopes to "DSP-XMIT".
- #############################################################################
- Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow ! Wow !
-
- -Test bit emulation: bug removed ! On a real SID, when you set the Test bit
- to one, the white noise is locked and reset... but NOT imediately ! There is a
- delay of several cycles. Old versions of FlaySID did not emulate this delay,
- so that the white noise was too much reset, creating "special white noise
- effects" wich were absolutely NOT in the original musics. Most of the
- time, the result was huge loss in high frequencies. The problem is that this
- delay is not stable on a real SID: it vary from $2000 to $8000 6502 cycles !
- FlaySID use a constant delay of $5000 cycles, wich seems to give satisfaying
- results. Please, tell to David your opinion about new white noise emulation.
-
- -Bug removed from DSP player: ring modulation was wrong using mixed waveforms
- (Triangle+other waveform) ! Technical explanation: this is because (We think
- that) the SID first creates a waveform from the triangle generator (but the
- rectangle generation unit disturb it) and computes the ring modulation, then
- it makes a logical AND with the rectangle waveform. Older version of FlaySID
- first computes the mixed waveform, make a logical AND with the rectangle
- waveform, and THEN do the ring with the result...
-
- -Sometimes, the waveforms were not drawed into the Time-Space viewer window.
- (ex: Sacred Armour of Antiriad). This bug has been removed.
-
- -DSP-68030's transfer routines are a bit faster.
-
- -Optimized time-space viewer. You can now see simultaneously SID registers
- and SID waveforms, without having a "turtle-like speed" ! :-)
-
- -Improved DSP player: better, FASTER, and cleaner computation algorithms.
-
- -New ! Muting of voices: you can now turn on or off any of the 4 voices of the
- SID, at any time.
-
- -New ! Filter emulation selection: You can also choose to turn on or off any of
- the 3 SID's filters.
-
- -New ! Test bit emulation selection: You can turn on or off SID's test bit
- emulation to see wether there is a difference or no.
- This option will be useful for curious users but not for others, that is
- why you should always emulate the test bit to have an accurate result !
-
- -New ! Conversion of Amiga's and PC's special ASCII characters, wich will let
- you read correctly the name of North european SID composers !
-
- -New ! Realtime volume level configuration: you can change the synthesis volume
- just moving a slider.
-
- -New ! Log window: This window give you informations about player's functionment and
- internal errors. Strange... it remembers me something, but I cannot see what ?! :-)
-
- -Smaller interface.
-
- -New ! FlaySID configuration file. You can now change the default configuration
- of FlaySID. You just have to change the parameters included into the "FLAYSID.INF"
- file. To change them, it is really easy: just take any ASCII text editor, and
- change the parameters ! FLAYSID.INF must be in the same directory than the
- executable program (FLAYSID.PRG or FLAYSID.ACC). If the INF file does not exist,
- FlaySID will take its own default configuration.
-
- **Version 2.0, December 1997. fifth update.
- Who said we are late ?!! ;-)
-
- -New ! Oscillator window wich displays SID waveforms on each voice
- (3 synthetic voices + 1 digital voice) and SID registers.
- You can choose among two display routines (system / assembler), you can
- view SID registers, choose color, ...
-
- -New ! Option window to change player's parameters.
-
- -Another awful bug removed from the emulator. This was again a bug in the
- C64 memory initialization routines (some bytes of the SID file were not
- loaded in C64 memory). Universe (by Drax), Chordian (by JCH), and a lot of
- tunes like this improvement !!
-
- -Bug removed from the emulation: bad flag refresh after "PLA" 6502 instruction.
- ex: "Knight games" (Martin Galway) works now correctly.
-
- -Completely new sample routines, now with 100% correct cycle count, and they
- should be 100% bug free (...we hope !). The following bugs have also been
- eliminated:
- -Bug removed from sample routines: with some parameters, the routines wich
- compute the samples and send them to the DSP could enter in a never ending
- loop ! This locked the Falcon... (ex.: 2400_AD)
- -Another bug removed from sample routines (DSP Player). Sometimes, they ended
- the playroutine too early. Next playroutines will then completely crash, causing
- wrong sound (ex: North&South) or... even worse (Falcon crash !).
-
- -Bug removed from file loading routines. Sometimes, with musics splitted in
- two file (*.* and *.INF, or *.DAT and *.SID) the info file wasn't loaded
- correctly, so that the emulator doesn't found essential information to
- run C64 routines.
-
- -The "tune number" buttons give now all the possible music numbers (0..255).
- In older versions, the number was limited to 99, wich was sometimes a problem
- (ex: Delta loader). [nb: there is again a bug for high numbers, sorry !]
-
- -According to the resolution of your screen, the icons of the interface will
- be converted so that it will look almost the same in any graphic mode.
- Welcome VGA users ! :) Note that the interface is a mess in VGA mode
- because the system do a bad conversion of objects position... We will
- try to improve things...
-
- -New interface features ! You can now iconify the main window of FlaySID to
- have just basic commands (load, play, pause, fast forward, Number of tune).
- Other very cool features are also available. Enjoy them !
-
- -OPTIMIZED emulator. Now, most of replay routines work at correct speed on a
- standard Falcon (16Mhz 68030)... if you don't move the mouse ! If you stop
- VIDEL (Video processor) 99% of playroutines work at correct speed, even 500Hz
- playroutines.
- A lot of things changed in the emulator, we hope it will not be a new source
- of bugs for you ! There are two emulation modes in this version: FAST PlaySID
- and Normal PlaySID. The latest is here just to prevent some (very very hypotetic)
- bugs of the former and will probably disappear soon.
-
- -New management of the tempo of the routines. Now the 68030 depend on to the
- DSP (before, it was the opposite !), so the tempo is now really accurate (cycle
- based).
-
- -New Fast Forward routines. Don't you think it sounds like a real one now ?
-
- -Huge bug removed from the DSP player: Bad cycle count and bad "synchronisation"
- with the 68030 wich could sometimes entails a loss of SID datas, resulting in lots
- of sonorous bugs such as what I [David] though to be an ADSR bug. Enjoy now all the
- marvellous tunes of Tim Follin and hundreds of other tunes !
-
-
- **Version 1.2, 14 of April, 1997. Fourth update.
- Sorry for the release delay of this update.
-
- -Smaller interface (Useful if you use FlaySID with multitask OS !)
-
- -Bug removed from the player: register $d41c of the SID was always filled with
- $00 in DSP mode ! Cause: Silly bug from the DSP player.
-
- -After playing, FlaySID now restores the sound system in a STe compatible mode,
- so that STe applications or Falcon applications wich use the Falcon like a STe
- will work [Some SID Players will like this improvment... :) ].
-
- -New DSP sound mixing-routines, the sound is now PCM coded, wich improves the
- quality (especially white noise) and prevent some little noises when very
- short attack/decay times are used.
-
- -FlaySID is now able to reproduce the mixed waveforms of the SID with a good
- fidelity: when choosing several waveforms simultaneously on a voice, the SID
- mix them in a very special way. So special that nobody knows the real algorithm
- to reproduce this output ! That is why, FlaySID use samples of theses waveforms
- (We hope to find the algorithm one day...). The output of the following
- combinations is exact: Square+Triangle, Square+Sawtooth, Sawtooth+Triangle.
- For the Sawtooth+Triangle+Square output, the fidelity is probably lower, because
- this output seems to be more complex than expected (Perhaps it vary for each new
- waveform ?!). When mixing with the white noise, most of the time the result is
- zero because it locks the SID. But in some cases, it could produce some very
- short sounds before the SID locks. In this version, the white noise is mixed
- with the 3 others waveforms using a logical AND, we will try to do a better
- emulation of this combination in a future version !
- Examples of mixed waveforms: Storm Warrior or Kanguru.
-
- -33Khz replay option ! This is for lucky owners of CPU and DSP accelerators
- (68030 running at 33Mhz/DSP at 50Mhz). I (David) will do my best to make it
- works on standard Falcon !
-
- -A lot of improvments and new code into the emulator, to add in a future
- version a SIDPlay PC Compatible mode, and a [VERY COOL] mode. Note also
- that the actual mode (PlaySID Compatible mode) has been greatly improved.
- FlaySID may be now really 100% PlaySID compatible for the memory management !
-
- -Some undocumented instructions added into the emulator.
-
- -Awful bug removed from the emulator. Cause: When FlaySID loaded the SID File
- into the C64 memory, the last byte of the SID File was missing. And this byte
- was sometimes essential, because it was the $60 instruction (RTS) wich ended
- the playroutine !! As a consequence, the emulator executed more code than
- expected and furthermore, a random code wich could change the SID Values for
- exemple (or completely lock the emulator...), until an undocumented
- instruction was met wich ended the playroutine... The results was a lot of
- bugs, such as the muting of some voices, emulator crash, etc...
-
- -New security system: FlaySID is now able to detect a crash of the 6510
- emulator in PlaySID mode (and in the future SIDPlay mode). Before, this kind
- of never-ending routine locked your Falcon (...like on a real C64 !). Now,
- if the emulator does not end a routine after 5 seconds, it stops. The "Play"
- icon will be selected, but there will not be any sound.
-
- -As you know (?) the InterNet ftp server "ftp.cnam.fr" /pub/Atari/ is dead
- :(((. Where could you find new versions of FlaySID ? Try ftp.funet.fi for
- exemple, we upload also the new versions here.
-
-
- **Version 1.1, 6th of January 1997. Third update.
- -Improved DSP player: Now, FlaySID plays samples with the same accuracy
- than synthesis, i.e. 40 or 50 6502 cycles. You can now MOVE THE MOUSE
- without any distorsion of samples !
- -Samples are now correctly synchronized with synthetized sound
- (This was not the case before !).
- -Optimisation of the DSP Player.
- -Optimised 6502 emulator: Faaaaaaster emulation !
-
-
- **Version 1.02β, 16th of December 1996. Second update.
- -Improved DSP Player. Now, FlaySID uses EXACTLY the same algorithms than the
- SID to make waveforms (except "illegal" waveforms), Hard sync and Ring
- modulation.
- -Optimisation of the DSP player, you will probably rarely use the
- 20Khz frequency...
- - Bug removed: Quality of sound improved. Cause: Bad synchronization of
- DSP and the DMA/CODEC (Bad "DSP mono=>DMA stereo" conversion). The sound
- has more high frequencies. Enjoy it !
-
-
- **Version 1.01β, 2th of December, 1996. First update.
- - Bug removed with CIA/IRQ emulation. This bug could lock the computer with
- some musics wich use CIA/IRQ (ex: Antiriad). Cause: bad conversion of
- CIA/IRQ parameters for the MFP...
-
-
- IX- For next versions
- -----------------------
-
- Some people though we stopped to improve FlaySID. This is, of course, perfectly
- wrong and we have not finished to add hundred of options ! Don't worry, you
- will not have to buy a PC to hear at your favourite tunes ! :-)
-
- Future improvements:
-
- *Full emulation of all filters
- *Emulation of SID's "analogical part"
- *SIDPlay emulation mode
- *Playlist to manage your SID files
- *Total C64 mode (what ?!)
- *A lot of options
- *Help window
- *...ideas ?
-
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- VERSION FRANCAISE / FRENCH SECTION
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
- -------------------------------------------------------------------------------
-
- Vous n'avez pas lu le début du fichier bon sang ?!! Je [David] n'ai PAS EU LE
- TEMPS de mettre la doc à jour car le ministère de la défense m'acceuille bras
- ouverts pour un stage de 10 mois ! Enfin bon, votre curiosité est récompensée
- puisque je peux vous annoncer qu'il y aura encore plein de versions de FlaySID.
- C'est pas un scoop ça, hein ?! Bon d'accord, combien y-a-t il de français,
- possesseur de Falcon, interessé par la musique soundchip du C64, et persévérant
- au point de lire la doc en anglais jusqu'à la fin, hein ?! Non mais vraiment, je
- me demande pourquoi je me décarcasse !